﻿using BaoVeThanhDia.GamePlay.Monsters;
using BaoVeThanhDia.Sound;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.Graphics;
using System.Collections.Generic;

namespace BaoVeThanhDia.Introduction
{
    class MonsterIntro
    {
        List<MonsterInfo> monsterlist;
        Texture2D ImageLine, ImageBorder;
        int IndexSelected;
        SpriteFont font;
        Monster monster;
        CustomSoundEffect click;
        public MonsterIntro()
        {
            click = new CustomSoundEffect("sounds/effect/Click_Button");
            monsterlist = new List<MonsterInfo>();
            for (int i = 0; i < 15; i++)
            {
                monsterlist.Add(new MonsterInfo(i + 1));
            }
            IndexSelected = 1;
            monster = new Monster(1, new Vector2(0, 0), 0, 0);
        }
        public void Load(ContentManager contentManager)
        {
            click.Load(contentManager);
            foreach (MonsterInfo monsterInfo in monsterlist)
            {
                monsterInfo.Load(contentManager);
            }
            ImageLine = contentManager.Load<Texture2D>("images/Introduction/line");
            ImageBorder = contentManager.Load<Texture2D>("images/Introduction/info_board");
            font = contentManager.Load<SpriteFont>("fonts/IntroFont");
            monster.Load(contentManager);
        }
        public void Draw(SpriteBatch spriteBatch, Vector2 Dolech)
        {
            foreach (MonsterInfo monsterInfo in monsterlist)
            {
                monsterInfo.Draw(spriteBatch, Dolech);
            }
            spriteBatch.Draw(ImageLine, new Vector2(50, 262), new Rectangle(0, 0, 688, 10), Color.White, 0f, Vector2.Zero, 1, SpriteEffects.None, 0f);
            spriteBatch.Draw(ImageBorder, new Vector2(61, 280), new Rectangle(0, 0, 339, 120), Color.White, 0f, Vector2.Zero, new Vector2(2, 1.6f), SpriteEffects.None, 0f);
            monster.OptionDraw(spriteBatch, new Vector2(65, 285), new Vector2(0, 0), 1.0f + 0.01f * IndexSelected, true);
            DrawScript(spriteBatch, font, IndexSelected);
        }
        public bool isTouch(Vector2 touch, Vector2 Dolech, ContentManager cont)
        {
            bool result = false;
            foreach (MonsterInfo monsters in monsterlist)
            {
                if (monsters.isTouch(touch, Dolech))
                {
                    if (IndexSelected != monsters.getTypeLinh())
                    {
                        click.Play();
                        setIndexSelected(monsters.getTypeLinh(), cont);
                    }
                    result = true;
                }
            }
            if (result == true)
            {
            }
            return result;
        }
        public void DrawScript(SpriteBatch sprite, SpriteFont font, int Type)
        {
            switch (Type)
            {
                case 1:
                    #region sâu địa ngục
                    sprite.DrawString(font, "Được nuôi trong những nhà tù địa ngục, chúng được", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "nuôi nấng bằng thịt người hoặc bằng chính những tên", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "yêu ma phạm tội, chúng háu đói, khát máu và không hề", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "sợ cái chết.", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng : Không có", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 2:
                    #region đồ tể
                    sprite.DrawString(font, "Là những tên chỉ huy dị hợm, chúng rất khỏe và rất ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "khó để ngăn cản chúng.", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "Khả năng : Không có", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 3:
                    #region lâu la
                    sprite.DrawString(font, "Những chiến binh thuộc hàng thấp kém nhất trong binh", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "đoàn địa ngục, chúng có thân hình nhỏ con, yếu đuối", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "và không được coi trọng trong binh đoàn này.", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Không có", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 4:
                    #region rồng cổ đại
                    sprite.DrawString(font, "Linh hồn của những con rồng thời cổ đại đại ma vương", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "hồi sinh và nuôi nấng như những con thú cảnh trong", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "nhà. Tuy nhiên chúng rất hung hãn và khỏe luôn tấn", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "công con người nếu có thể ", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng : Hồi sinh với 30% máu bản thân.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 5:
                    #region kẻ vận chuyển
                    sprite.DrawString(font, "Do lượng máu khỏe và giáp đày, chúng thường đi ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "trước để hứng chịu sự tấn công của kẻ địch trước ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "khi thả ra những loài yêu ma khác tấn công loài", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "người.", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng :Gọi các quái đệ theo thời gian.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 6:
                    #region kẻ gọi hồn
                    sprite.DrawString(font, "Những bậc thầy của thế giới phù thủy, trước đây ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "chúng là những  người thường nhưng vì chạy theo ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "tà thuật mà đã bán linh hồn cho quỷ dữ để hòng ", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "mua lấy sự bất tử", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng :Né 30% thời gian.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 7:
                    #region chiến binh bóng đêm
                    sprite.DrawString(font, "Là những chiến binh tinh nhuệ, chúng khỏe và có ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "tốc độ, thường là tiên phong đi đầu trong các ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "cuộc chiến.", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Không có.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 8:
                    #region Tiểu quỷ
                    sprite.DrawString(font, "Những tên tay sai chủ lực của binh đoàn địa ngục.", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "Chúng có tốc độ di chuyển cực nhanh cùng khả ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "năng bay trên không nên dễ dàng xâm nhập và tấn ", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "công loài người.", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng :Né 30% thời gian.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 9:
                    #region kẻ gieo ác mộng
                    sprite.DrawString(font, "Những kẻ đến từ giấc mơ, chúng là 1 loài sinh", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "vật nửa thực nửa ảo, như là đến từ truyền thuyết.", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "Chúng đem đến cho loài người ngày càng nhiều  ", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "ác mộng không chỉ là trong giấc mơ", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng : Hồi máu theo thời gian", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 10:
                    #region rồng ăn thịt
                    sprite.DrawString(font, "Thực sự là những con thú man rợn, khi chúng đói ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "chúng ăn mọi thứ mà chúng gặp trên đường. Chúng ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "là những cỗ máy ăn thịt khủng khiếp ngoài trận địa", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Cắn hồi máu 25%", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 11:
                    #region hồn ma
                    sprite.DrawString(font, "Là những yêu linh chưa được siêu thoát chúng ẩn nấp", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "thân mình trong bóng tối và nhờ đó chúng luôn tránh", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "được những đòn tấn công.", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Tàng hình 50% thời gian", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 12:
                    #region kẻ gác cổng địa ngục
                    sprite.DrawString(font, "Cực kỳ khỏe, hung hãn và trung thành với quỷ vương. ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "Chúng canh giữ cánh cửa vào địa ngục. Chưa có ai có ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "thể khuất phục được chúng", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Né 30% thời gian", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 13:
                    #region phù thủy bóng đêm
                    sprite.DrawString(font, "Những năm tháng chế luyện tà dược đã tạo cho chúng ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "khả năng miễn dịch với mọi loại dị trạng. Rất khó ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "để ngăn cản chúng.", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "Khả năng : Kháng các hiệu ứng", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                case 14:
                    #region rồng bạo chúa
                    sprite.DrawString(font, "là những tên tay sai ưa thích của quỷ vương, khả năng", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "bay cùng với thân hình to lớn, khỏe và cực kỳ hung hãn.", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "Chúng càn quét mọi vùng đất mà chúng đã đi qua, tiêu", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "diệt tất cả các sinh linh mà chúng nhìn thấy.", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng : Hồi sinh 50% máu cơ bản", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
                default:
                    #region ác quỷ bất diệt
                    sprite.DrawString(font, "Vua của các loài quỷ, độc ác, tàn bạo lại mang trong ", new Vector2(220, 300), Color.Black);
                    sprite.DrawString(font, "mình 1 sức mạnh bất diệt và vô tận.Có âm mưu tiêu ", new Vector2(220, 330), Color.Black);
                    sprite.DrawString(font, "diệt toàn bộ thế giới loài người để xây dựng lên 1 ", new Vector2(220, 360), Color.Black);
                    sprite.DrawString(font, "vương triều ma quái và chết chóc.", new Vector2(220, 390), Color.Black);
                    sprite.DrawString(font, "Khả năng : Gọi quái đệ theo thời gian.", new Vector2(220, 420), Color.Black);
                    break;
                    #endregion
            }
        }
        public void setIndexSelected(int i, ContentManager cont)
        {
            IndexSelected = i;
            this.monster = new Monster(IndexSelected, new Vector2(0, 0), 0, 0);
            monster.Load(cont);
        }
    }
}
